package uestc.lj.gulishop.search.vo;

import lombok.Data;
import uestc.lj.common.to.SkuEsModel;

import java.util.ArrayList;
import java.util.List;

/**
 * 查询结果的返回bean
 *
 * @author crazlee
 */
@Data
public class SearchResponseVO {
    /**
     * 查询到的所有商品信息
     */
    private List<SkuEsModel> products;
    /**
     * 当前页码
     */
    private Integer pageNum;
    /**
     * 查询结果的总记录数
     */
    private Long total;
    /**
     * 总页码
     */
    private Integer totalPages;
    /**
     * 导航页码，方便前端遍历显示页面
     */
    private List<Integer> pageNavs;
    /**
     * 所检索的商品中包含的所有品牌
     */
    private List<BrandResponseVO> brands;
    /**
     * 所检索的商品中包含的所有属性
     */
    private List<AttrResponseVO> attrs;
    /**
     * 所检索的商品中包含的所有分类
     */
    private List<CatalogResponseVO> catalogs;
    /**
     * 面包屑导航数据
     */
    private List<NavVO> navs = new ArrayList<>();

    @Data
    public static class NavVO {
        private String navName;
        private String navValue;
        private String link;
    }

    /**
     * 商品品牌的返回实体
     */
    @Data
    public static class BrandResponseVO {
        private Long brandId;
        private String brandName;
        private String brandImg;
    }

    /**
     * 商品属性的返回实体
     */
    @Data
    public static class AttrResponseVO {
        private Long attrId;
        private String attrName;
        private List<String> attrValue;
    }

    /**
     * 商品分类的返回实体
     */
    @Data
    public static class CatalogResponseVO {
        private Long catalogId;
        private String catalogName;
    }
}
